package tabla_simbolos;

import lexico.Declaracion.ClaseTabla;


public class ComponenteTabla {
	/*Atributos*/
	private ClaseTabla clase;
	private int dir;
	private int nivel;
	private String id;
	private Registro propsReg;
	private Puntero propsPunt;
	private Array propsArray;
	private Procedimiento propsProc;
	private Variable propsVar;
	private Referencia propsRef;
	private TipoBasico propsTBas;
	
	/*Constructora*/
	public ComponenteTabla(ClaseTabla tipo,int dir, int nivel, String id, Registro props){
		this.clase=tipo;
		this.dir=dir;
		this.nivel=nivel;
		this.id=id;
		this.setPropsReg(props);
		this.setPropsArray(null);
		this.setPropsProc(null);
		this.setPropsPunt(null);
		this.setPropsVar(null);
		this.setPropsRef(null);
		this.setPropTBas(null);
	}
	
	public ComponenteTabla(ClaseTabla tipo,int dir, int nivel, String id, Puntero props){
		this.clase=tipo;
		this.dir=dir;
		this.nivel=nivel;
		this.id=id;
		this.setPropsPunt(props);
		this.setPropsArray(null);
		this.setPropsProc(null);
		this.setPropsReg(null);
		this.setPropsVar(null);
		this.setPropsRef(null);
		this.setPropTBas(null);
	}
	
	public ComponenteTabla(ClaseTabla tipo,int dir, int nivel, String id, Array props){
		this.clase=tipo;
		this.dir=dir;
		this.nivel=nivel;
		this.id=id;
		this.setPropsArray(props);
		this.setPropsPunt(null);
		this.setPropsProc(null);
		this.setPropsReg(null);
		this.setPropsVar(null);
		this.setPropsRef(null);
		this.setPropTBas(null);
	}
	
	public ComponenteTabla(ClaseTabla tipo,int dir, int nivel, String id, Procedimiento props){
		this.clase=tipo;
		this.dir=dir;
		this.nivel=nivel;
		this.id=id;
		this.setPropsProc(props);
		this.setPropsArray(null);
		this.setPropsPunt(null);
		this.setPropsReg(null);
		this.setPropsVar(null);
		this.setPropsRef(null);
		this.setPropTBas(null);
	}
	
	public ComponenteTabla(ClaseTabla tipo,int dir, int nivel, String id, Variable props){
		this.clase=tipo;
		this.dir=dir;
		this.nivel=nivel;
		this.id=id;
		this.setPropsVar(props);
		this.setPropsArray(null);
		this.setPropsProc(null);
		this.setPropsReg(null);
		this.setPropsPunt(null);
		this.setPropsRef(null);
		this.setPropTBas(null);
	}
	
	public ComponenteTabla(ClaseTabla tipo,int dir, int nivel, String id, Referencia props){
		this.clase=tipo;
		this.dir=dir;
		this.nivel=nivel;
		this.id=id;
		this.setPropsRef(props);
		this.setPropsArray(null);
		this.setPropsProc(null);
		this.setPropsReg(null);
		this.setPropsPunt(null);
		this.setPropsVar(null);
		this.setPropTBas(null);
	}

	public ComponenteTabla(ClaseTabla tipo, int dir, int nivel, String id,TipoBasico tb) {
		this.clase=tipo;
		this.dir=dir;
		this.nivel=nivel;
		this.id=id;
		this.setPropsRef(null);
		this.setPropsArray(null);
		this.setPropsProc(null);
		this.setPropsReg(null);
		this.setPropsPunt(null);
		this.setPropsVar(null);
		this.setPropTBas(tb);
	}

	/*Get & Set*/
	public ClaseTabla getclase() {return clase;}
	public int getDir() {return dir;}
	public int getNivel() {return nivel;}
	public String getId() {return id;}
	public void setTipoTabla(ClaseTabla tipo) {this.clase=tipo;}
	public void setPropsReg(Registro propsReg) {this.propsReg = propsReg;}
	public Registro getPropsReg() {return propsReg;}
	public void setPropsPunt(Puntero propsPunt) {this.propsPunt = propsPunt;}
	public Puntero getPropsPunt() {return propsPunt;}
	public void setPropsArray(Array propsArray) {this.propsArray = propsArray;}
	public Array getPropsArray() {return propsArray;}
	public void setPropsProc(Procedimiento propsProc) {this.propsProc = propsProc;}
	public Procedimiento getPropsProc() {return propsProc;}
	public void setPropsVar(Variable propsVar) {this.propsVar = propsVar;}
	public Variable getPropsVar() {return propsVar;}
	public void setPropsRef(Referencia propsRef) {this.propsRef = propsRef;}
	public Referencia getPropsRef() {return propsRef;}
	public void setPropTBas(TipoBasico tb) {this.propsTBas=tb;	}
	public TipoBasico getPropsTBas(){return this.propsTBas;}


	
}
